#ifndef __LINUX_PKT_SCHED_EMPATH_H
#define __LINUX_PKT_SCHED_EMPATH_H

/* empath */
enum
{
	TCA_EMPATH_UNSPEC,
	TCA_EMPATH_PARAMETERS,
	__TCA_EMPATH_MAX,
};
#define TCA_EMPATH_MAX (__TCA_EMPATH_MAX - 1)

struct tc_empath_dist_entry
{
  	__u32 x;            /* argument of distribution */
	__u32 y_high;       /* high limit of distribution */
	__u32 next_table;   /* index of next table for use */
};

struct tc_empath_dist
{
	__u32 entries_count; /* number of entries in distribution */
	__u32 packet_loss;   /* probability of loosing a packet */
	struct tc_empath_dist_entry entries[];
};

struct tc_empath_parameters
{
	__u32 queue_limit;  /* queue limit */
	__u32 dist_count;   /* number of distributions */
       	__u32 interarrival; /* interarrival period for main distribution - usec */
	__u32 interarrival_scope; /* maximum intearrival period for distribution - usec */
	struct tc_empath_dist dists[];
};

#endif
